<template>
    你好，这是vad_web页面
</template>

<script setup>
    import { MicVAD } from "@ricky0123/vad-web"

    
    const myvad = await MicVAD.new({
        baseAssetPath: "/", // or whatever you want
        onnxWASMBasePath: "/", // or whatever you want
        onSpeechEnd: (audio) => {
            // audio: Float32Array, 采样率 16000

            // 创建 AudioContext（推荐复用，避免频繁创建）
            const audioContext = new (window.AudioContext || window.webkitAudioContext)();
            
            // 创建 AudioBuffer，格式：单声道，16000Hz
            const audioBuffer = audioContext.createBuffer(
            1,               // 单声道
            audio.length,    // 样本数
            16000            // 采样率
            );

            // 将 Float32Array 数据写入 AudioBuffer
            const channelData = audioBuffer.getChannelData(0);
            channelData.set(audio);

            // 创建 source 节点并播放
            const source = audioContext.createBufferSource();
            source.buffer = audioBuffer;
            source.connect(audioContext.destination); // 连接到扬声器
            source.start(); // 播放

            // 可选：播放结束后关闭 AudioContext（节省资源）
            source.onended = () => {
            audioContext.close();
            };
        },
    })
    myvad.start()

</script>